added shadow_type setting and gtk_menu_bar_set_shadow_type function to
authorManish Singh <yosh@src.gnome.org>
Mon, 16 Nov 1998 09:05:26 +0000 (09:05 +0000)
committerManish Singh <yosh@src.gnome.org>
Mon, 16 Nov 1998 09:05:26 +0000 (09:05 +0000)
* gtk/gtkmenubar.[ch]: added shadow_type setting and
gtk_menu_bar_set_shadow_type function to allow shadow
configurability for menubars

* gtk/gtkviewport.h: use GtkShadowType enum instead of generic guint

-Yosh

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkmenubar.c
gtk/gtkmenubar.h
gtk/gtkviewport.h

index e4ae81d7c5beed100705bdb4090159fbf4bb2b4b..326bcbb2ee99f8ef48ad36303d28b9dcbb217b37 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Mon Nov 16 00:59:26 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkmenubar.[ch]: added shadow_type setting and
+       gtk_menu_bar_set_shadow_type function to allow shadow
+       configurability for menubars
+
+       * gtk/gtkviewport.h: use GtkShadowType enum instead of generic
+       guint
+
 Mon Nov 16 00:17:53 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktypeutils.c (gtk_type_new): relookup type node after
index e4ae81d7c5beed100705bdb4090159fbf4bb2b4b..326bcbb2ee99f8ef48ad36303d28b9dcbb217b37 100644 (file)
@@ -1,3 +1,12 @@
+Mon Nov 16 00:59:26 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkmenubar.[ch]: added shadow_type setting and
+       gtk_menu_bar_set_shadow_type function to allow shadow
+       configurability for menubars
+
+       * gtk/gtkviewport.h: use GtkShadowType enum instead of generic
+       guint
+
 Mon Nov 16 00:17:53 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktypeutils.c (gtk_type_new): relookup type node after
index e4ae81d7c5beed100705bdb4090159fbf4bb2b4b..326bcbb2ee99f8ef48ad36303d28b9dcbb217b37 100644 (file)
@@ -1,3 +1,12 @@
+Mon Nov 16 00:59:26 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkmenubar.[ch]: added shadow_type setting and
+       gtk_menu_bar_set_shadow_type function to allow shadow
+       configurability for menubars
+
+       * gtk/gtkviewport.h: use GtkShadowType enum instead of generic
+       guint
+
 Mon Nov 16 00:17:53 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktypeutils.c (gtk_type_new): relookup type node after
index e4ae81d7c5beed100705bdb4090159fbf4bb2b4b..326bcbb2ee99f8ef48ad36303d28b9dcbb217b37 100644 (file)
@@ -1,3 +1,12 @@
+Mon Nov 16 00:59:26 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkmenubar.[ch]: added shadow_type setting and
+       gtk_menu_bar_set_shadow_type function to allow shadow
+       configurability for menubars
+
+       * gtk/gtkviewport.h: use GtkShadowType enum instead of generic
+       guint
+
 Mon Nov 16 00:17:53 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktypeutils.c (gtk_type_new): relookup type node after
index e4ae81d7c5beed100705bdb4090159fbf4bb2b4b..326bcbb2ee99f8ef48ad36303d28b9dcbb217b37 100644 (file)
@@ -1,3 +1,12 @@
+Mon Nov 16 00:59:26 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkmenubar.[ch]: added shadow_type setting and
+       gtk_menu_bar_set_shadow_type function to allow shadow
+       configurability for menubars
+
+       * gtk/gtkviewport.h: use GtkShadowType enum instead of generic
+       guint
+
 Mon Nov 16 00:17:53 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktypeutils.c (gtk_type_new): relookup type node after
index e4ae81d7c5beed100705bdb4090159fbf4bb2b4b..326bcbb2ee99f8ef48ad36303d28b9dcbb217b37 100644 (file)
@@ -1,3 +1,12 @@
+Mon Nov 16 00:59:26 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkmenubar.[ch]: added shadow_type setting and
+       gtk_menu_bar_set_shadow_type function to allow shadow
+       configurability for menubars
+
+       * gtk/gtkviewport.h: use GtkShadowType enum instead of generic
+       guint
+
 Mon Nov 16 00:17:53 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktypeutils.c (gtk_type_new): relookup type node after
index e4ae81d7c5beed100705bdb4090159fbf4bb2b4b..326bcbb2ee99f8ef48ad36303d28b9dcbb217b37 100644 (file)
@@ -1,3 +1,12 @@
+Mon Nov 16 00:59:26 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkmenubar.[ch]: added shadow_type setting and
+       gtk_menu_bar_set_shadow_type function to allow shadow
+       configurability for menubars
+
+       * gtk/gtkviewport.h: use GtkShadowType enum instead of generic
+       guint
+
 Mon Nov 16 00:17:53 1998  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktypeutils.c (gtk_type_new): relookup type node after
index 50bb4eecc1e4eaccc844d0eb4d7710db57413947..d22ba4fdfe515cc47d3db55475d62740924af0ea 100644 (file)
 #include "gtkmenubar.h"
 #include "gtkmenuitem.h"
 
+enum {
+  ARG_0,
+  ARG_SHADOW
+};
+
 
 #define BORDER_SPACING  2
 #define CHILD_SPACING   3
 
 static void gtk_menu_bar_class_init    (GtkMenuBarClass *klass);
 static void gtk_menu_bar_init          (GtkMenuBar      *menu_bar);
+static void gtk_menu_bar_set_arg       (GtkObject      *object,
+                                       GtkArg         *arg,
+                                       guint           arg_id);
+static void gtk_menu_bar_get_arg       (GtkObject      *object,
+                                       GtkArg         *arg,
+                                       guint           arg_id);
 static void gtk_menu_bar_size_request  (GtkWidget       *widget,
                                        GtkRequisition  *requisition);
 static void gtk_menu_bar_size_allocate (GtkWidget       *widget,
@@ -69,14 +80,21 @@ gtk_menu_bar_get_type (void)
 static void
 gtk_menu_bar_class_init (GtkMenuBarClass *class)
 {
+  GtkObjectClass *object_class;
   GtkWidgetClass *widget_class;
   GtkMenuShellClass *menu_shell_class;
 
   GtkBindingSet *binding_set;
 
+  object_class = (GtkObjectClass*) class;
   widget_class = (GtkWidgetClass*) class;
   menu_shell_class = (GtkMenuShellClass*) class;
 
+  gtk_object_add_arg_type ("GtkMenuBar::shadow", GTK_TYPE_SHADOW_TYPE, GTK_ARG_READWRITE, ARG_SHADOW);
+
+  object_class->set_arg = gtk_menu_bar_set_arg;
+  object_class->get_arg = gtk_menu_bar_get_arg;
+
   widget_class->draw = gtk_menu_bar_draw;
   widget_class->size_request = gtk_menu_bar_size_request;
   widget_class->size_allocate = gtk_menu_bar_size_allocate;
@@ -110,8 +128,48 @@ gtk_menu_bar_class_init (GtkMenuBarClass *class)
 static void
 gtk_menu_bar_init (GtkMenuBar *menu_bar)
 {
+  menu_bar->shadow_type = GTK_SHADOW_OUT;
+}
+
+static void
+gtk_menu_bar_set_arg (GtkObject      *object,
+                     GtkArg         *arg,
+                     guint           arg_id)
+{
+  GtkMenuBar *menu_bar;
+
+  menu_bar = GTK_MENU_BAR (object);
+
+  switch (arg_id)
+    {
+    case ARG_SHADOW:
+      gtk_menu_bar_set_shadow_type (menu_bar, GTK_VALUE_ENUM (*arg));
+      break;
+    default:
+      break;
+    }
 }
 
+static void
+gtk_menu_bar_get_arg (GtkObject      *object,
+                     GtkArg         *arg,
+                     guint           arg_id)
+{
+  GtkMenuBar *menu_bar;
+
+  menu_bar = GTK_MENU_BAR (object);
+
+  switch (arg_id)
+    {
+    case ARG_SHADOW:
+      GTK_VALUE_ENUM (*arg) = menu_bar->shadow_type;
+      break;
+    default:
+      arg->type = GTK_TYPE_INVALID;
+      break;
+    }
+}
 GtkWidget*
 gtk_menu_bar_new (void)
 {
@@ -262,6 +320,25 @@ gtk_menu_bar_size_allocate (GtkWidget     *widget,
     }
 }
 
+void
+gtk_menu_bar_set_shadow_type (GtkMenuBar    *menu_bar,
+                             GtkShadowType  type)
+{
+  g_return_if_fail (menu_bar != NULL);
+  g_return_if_fail (GTK_IS_MENU_BAR (menu_bar));
+
+  if ((GtkShadowType) menu_bar->shadow_type != type)
+    {
+      menu_bar->shadow_type = type;
+
+      if (GTK_WIDGET_DRAWABLE (menu_bar))
+        {
+          gtk_widget_queue_clear (GTK_WIDGET (menu_bar));
+        }
+      gtk_widget_queue_resize (GTK_WIDGET (menu_bar));
+    }
+}
+
 static void
 gtk_menu_bar_paint (GtkWidget *widget, GdkRectangle *area)
 {
@@ -273,7 +350,7 @@ gtk_menu_bar_paint (GtkWidget *widget, GdkRectangle *area)
       gtk_paint_box (widget->style,
                     widget->window,
                     GTK_STATE_NORMAL,
-                    GTK_SHADOW_OUT,
+                    GTK_MENU_BAR (widget)->shadow_type,
                     area, widget, "menubar",
                     0, 0,
                     -1,-1);
index 882dbc199eab70ba6812d6337282b509d5bed53e..bf76a412fe15573e368f001a0ece095dc593c3aa 100644 (file)
@@ -41,6 +41,8 @@ typedef struct _GtkMenuBarClass  GtkMenuBarClass;
 struct _GtkMenuBar
 {
   GtkMenuShell menu_shell;
+
+  GtkShadowType shadow_type;
 };
 
 struct _GtkMenuBarClass
@@ -49,15 +51,17 @@ struct _GtkMenuBarClass
 };
 
 
-GtkType    gtk_menu_bar_get_type (void);
-GtkWidget* gtk_menu_bar_new      (void);
-void       gtk_menu_bar_append   (GtkMenuBar *menu_bar,
-                                 GtkWidget  *child);
-void       gtk_menu_bar_prepend  (GtkMenuBar *menu_bar,
-                                 GtkWidget  *child);
-void       gtk_menu_bar_insert   (GtkMenuBar *menu_bar,
-                                 GtkWidget  *child,
-                                 gint        position);
+GtkType    gtk_menu_bar_get_type        (void);
+GtkWidget* gtk_menu_bar_new             (void);
+void       gtk_menu_bar_append          (GtkMenuBar    *menu_bar,
+                                        GtkWidget     *child);
+void       gtk_menu_bar_prepend         (GtkMenuBar    *menu_bar,
+                                        GtkWidget     *child);
+void       gtk_menu_bar_insert          (GtkMenuBar    *menu_bar,
+                                        GtkWidget     *child,
+                                        gint           position);
+void       gtk_menu_bar_set_shadow_type (GtkMenuBar    *menu_bar,
+                                        GtkShadowType  type);
 
 
 #ifdef __cplusplus
index d56d728d6d8611626cff68e22d7d989a49ed4b61..a108f4731b51a2357fe503747e248f68166d7b89 100644 (file)
@@ -44,7 +44,7 @@ struct _GtkViewport
 {
   GtkBin bin;
 
-  guint shadow_type;
+  GtkShadowType shadow_type;
   GdkWindow *view_window;
   GdkWindow *bin_window;
   GtkAdjustment *hadjustment;